package xyz.xmh.pattern.creational.abstractfactorypattern;

import xyz.xmh.pattern.creational.abstractfactorypattern.inter.Color;
import xyz.xmh.pattern.creational.abstractfactorypattern.inter.Shape;

/**
 * AbstractFactory
 * 抽象工厂类，定义工厂类
 *
 * @author xuMingHai
 * @since 2021/4/27 星期二 17:03
 */
public abstract class AbstractFactory {
    /**
     * 根据颜色类型，获取具体的颜色对象
     *
     * @param colorType 颜色类型
     * @return 具体的颜色对象
     */
    public abstract Color getColor(String colorType);

    /**
     * 根据形状类型，获取具体的形状对象
     *
     * @param shapeType 形状类型
     * @return 具体的形状对象
     */
    public abstract Shape getShape(String shapeType);
}
